home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-03-14 | 9.4 KB | 307 lines | [TEXT/KAHL] |
- TCL UPDATE INSTRUCTIONS
- =======================
- Copyright © 1990 Symantec Corporation. All rights reserved.
- 3/15/90
-
- INTRODUCTION
- ============
- Since Symantec released the THINK Class Library, we've found, and users have
- reported, several bugs. This update fixes these bugs
-
- This update uses a program called AutoWeave to create new TCL source files
- from your existing files. It applies a set of "differences" files to the
- original THINK Class Library source files that came with your THINK C
- package to create new updated source files.
-
- There are two things to watch out for:
-
- • The AutoWeave program assumes that you have not changed
- how the THINK Class Library source files are organized.
- All of the TCL source files should be a folder called
- THINK Class Library which should contain two folders called
- Core Classes and More Classes.
-
- • If you modified any of the original source files, you
- should move them to a different folder or rename them.
- Otherwise, the AutoWeave program will replace them with
- updated versions, and your changes will be lost.
-
-
- HOW TO USE IT
- =============
- •• Please read through these instructions before you begin.
-
- 0. Be sure that you have your original disk THINK C 3 from your
- THINK C 4.0 package.
-
- 1. Double-click on the file named "TCL Update.Script" to launch
- the AutoWeave program.
-
- 2. The AutoWeave program will ask you to locate the original "THINK
- Class Library" folder. Insert your THINK C 3 disk in the floppy
- drive, choose the folder "THINK Class Library" and click OK.
-
- 3. The AutoWeave program will ask you to locate your copy of the
- "THINK Class Library" folder. If you followed the installation
- instructions in your THINK C 4.0 User's Manual, this folder
- is your THINK C Folder.
-
- 4. The AutoWeave program will ask you to locate the "TCL Update Diffs"
- folder. This folder is supplied as part of this
- update. Select this folder and click OK. (Be sure
- not to select "TCL Demo Update Diffs" by mistake.)
-
- 5. The AutoWeave program will now modify the appropriate files,
- keeping you informed of its progress. When it has finished,
- you may want to check one or two of the files, to make sure
- that everything worked. (For example, if you chose the
- wrong Diffs folder in step 4, the Weaver wouldn't actually
- do anything, although it might act like it did.)
-
-
-
- SUMMARY OF THE CHANGES
- ======================
-
- NOTE: The aSupervisor parameter to descendants of
- CDirector is now required to be of type CApplication
- instead of CBureaucrat. If you get compilation errors
- after updating, look at the declaration of aSupervisor
- in your CDirector and CDocument subclasses.
-
- 1. CApplication.c
- IApplication now calls IBureaucrat(NULL) to init itsSupervisor.
-
- InitMemory now initializes canFail to FALSE.
-
- 2. CBartender.c
- InsertHierMenus now adjust the "afterItem" parameter to ensure
- that it is between 0 and the total number of items in the target
- menu.
-
- InsertHierMenus now passes the correct menu handle to SetItemMark
- and SetItemCmd.
-
- InsertMenuCmd now properly handles the case where an item is being
- added to a menu which initially had no items.
-
- 3. CBitMapPane.c
- IBitMapPane exits if IBitMap fails.
-
- 4. CBureaucrat.c
- UpdateMenus no longer checks for itsSupervisor == NULL; this is
- unnecessary.
-
- 5. CButton.c
- IButton now initializes printClip and printing.
-
- IButton now adjusts hEncl and vEncl to account for its enclosure's
- origin.
-
- 6. CClipboard.h
- Changed declaration of IClipboard to require aSupervisor to be a
- CApplication.
-
- 7. CClipboard.c
- IClipboard now sets itsScrollPane to NULL if hasWindow is false.
-
- UpdateDisplay now calls DisposHandle(theData) if theData
- points to TEXT (CStaticText uses a copy, so the original
- is not needed).
-
- Changed implementation of IClipboard to require aSupervisor to be a
- CApplication.
-
- Now #includes CApplication.h.
-
- 8. CDataFile.c
- ReadAll and WriteAll now return errCode.
-
- 9. CDecorator.c
- CenterWindow has been rewritten to account for the menu bar and
- the structure region of the window.
-
- 10. CDirector.h
- Changed declaration of IDirector to require aSupervisor to be a
- CApplication.
-
- 11. CDirector.c
- Changed implementation of IDirector to require aSupervisor to be a
- CApplication.
-
- 12. CDesktop.c
- DispatchClick now sends an Activate message to a window which
- processes an activating click.
-
- 13. CDocument.h
- Changed declaration of IDocument to require aSupervisor to be a
- CApplication.
-
- 14. CDocument.c
- ConfirmClose now updates the document's window before posting the
- "save changes?" alert.
-
- PageCount now returns 0 if itsMainPane == NULL.
-
- Changed implementation of IDocument to require aSupervisor to be
- a CApplication.
-
- Now #includes CApplication.h.
-
- 15. CEditText.c
- Modified DoKeyDown to support scrolling keys on extended keyboards.
-
- Modified DoClick to fix activation problem with multiple EditText
- fields within a pane.
-
- Now declares gGopher as an extern.
-
- 16. CError.h
- Added declaration of MissingResources method.
-
- 17. CError.c
- GrowZoneFunc now uses SetCurrentA5 and SetA5 instead of SetupA5
- and RestoreA5, as recommended in Tech Note 208.
-
- SevereMacError has been modified and MissingResources has been
- added so that the TCL will fail gracefully when no resource file
- is present.
-
- Now declares gSleepTime and gHasWNE as externs.
-
- Now #includes CStaticText.h.
-
- 18. CFWDesktop.h
- Added CalcTopFloat() method declaration.
-
- 19. CFWDesktop.c
- Added CalcTopFloat() method definition.
-
- 20. CList.c
- MoveDown has been corrected to allow the first item in the list
- to be moved (now tests for i >= 0 instead of i > 0).
-
- 21. CMBarChore.c
- Uses #include "Global.h" instead of #include <Global.h>.
-
- 22. Constants.h
- Added #defines for Home, End, Page Up, Page Down key codes.
-
- 23. CPane.c
- CalcAperture now propagates down to the pane's subviews.
-
- Moved the Pane_CalcAperture function from just above
- AdjustToEnclosure to just above CalcAperture.
-
- The code which sent CalcAperture messages to all of the pane's
- subviews has been removed, since this is done in the CalcAperture
- method itself.
-
- The code which handles moving AND resizing a pane at the same
- time has been changed to redraw the pane after the Offset as
- well as after the ChangeSize. This causes the original location
- of the pane to be invalidated properly.
-
- IViewTemp now initializes autoRefresh correctly.
-
- FrameToGlobalR now works whether or not the window is visible.
-
- ChangeSize now saves the old aperture before calling ResizeFrame
- (in some cases, ResizeFrame can cause the aperture to be updated).
-
- 24. CPanorama.h
- Added DoKeyDown method declaration (support for scrolling keys
- on extended keyboards).
-
- Added declaration of Pane_EnclosureScrolled so that subclasses of
- CPanorama may use this function when overriding Scroll.
-
- 25. CPanorama.c
- AutoScroll always calls Prepare after scrolling, even if
- itsScrollPane == NULL.
-
- ResizeFrame ties the scroll position to the left of the
- frame instead of moving the origin.
-
- Added DoKeyDown method to implement Home, End, Page Up, Page
- Down scrolling keys.
-
- Now #includes Constants.h and CWindow.h.
-
- Pane_EnclosureScrolled function is no longer declared static, so
- that subclasses of CPanorama may use this function when overriding
- Scroll.
-
- Scroll now redraws the Panorama by sending an Update message to
- its enclosing window. Previously, this method was blindly
- throwing away the window's update region before drawing the
- Panorama.
-
- SetScales now ensures that the scales are >= 1.
-
- 26. CPictFile.c
- IPictFile now calls IDataFile instead of IFile.
-
- 27. CPicture.h
- Added declaration of Dispose method.
-
- 28. CPicture.c
- Added Dispose method to dispose of the "macPicture" PicHandle.
-
- 29. CPNTGFile.c
- IPNTGFile now calls IDataFile instead of IFile.
-
- 30. CRadioButton.h
- Changed declaration of IRadioButton to require aSupervisor to be
- a CRadioGroup.
-
- 31. CRadioButton.c
- Changed implementation of IRadioButton to require aSupervisor to be
- a CRadioGroup.
-
- 32. CScrollBar.c
- IScrollBar now initializes printClip and printing.
-
- 33. CStaticText.c
- IStaticTextX no longer passes instance var address to
- TENew, which can move memory.
-
- SetWholeLines now calls CalcAperture before CalcTERects to
- handle the case where the frame has changed size.
-
- In AdjustBounds, corrected the calculation of bounds.right.
-
- 34. CSwitchboard.c
- Modified DoKeyEvent to support F1, F2, F3, F4 keys (undo, cut,
- copy, paste).
-
- Now #includes Commands.h.
-
- Now #defines KeyF1, KeyF2, KeyF3, KeyF4 key codes.
-
- ProcessEvent now gets the mouse location by setting the port to
- the Desktop's port and using GetMouse. This way, the current port
- is always valid.
-
- 35. CTearOffMenu.h
- ITearOffMenu parameter (aSupervisor) is now a CApplication.
-
- 36. CTearOffMenu.c
- Suspend and Resume now correctly update the gDesktop->topFloat
- instance var by sending gDesktop a CalcTopFloat message.
-
- #includes CFWDesktop instead of CDesktop.
-
- ITearOffMenu parameter (aSupervisor) is now a CApplication.
-
- 37. CTextEnvirons.c
- ITextEnvirons now initializes the textInfo struct.
-
- 38. CWindow.c
- ChangeSize now calls Update() before exiting.
- FrameToGlobalR now works whether or not the window is visible.
-
- 39. TBUtilities.c
- ConcatPStrings now truncates the resulting string if it would be
- longer than 255 chars.
-